Many computer systems include one or more computers or processors and one or more storage systems that store data used by the computers. These computer systems will have the one or more computers remotely dispersed and connected to one another over a wide area network (WAN) or the Internet. Often these computer systems will also have the one or more storage devices remotely dispersed over a communication medium capable of transmitting data over long distances. An example of such a system is shown in FIG. 1, and includes computers 12, 13 and storage systems 20 and 21. The computers 12 and 13 typically include processors or Central Processing Units (CPUs) 14 and 15 and host bus adapters 16 and 17 respectively that each controls communications from the computer to the storage systems 20 and 21 via a corresponding one of the communication buses 18, 19. It should be appreciated that rather than a single processor 14 and 15, each of the computers can include multiple processors. The communication buses 18, 19 shown in FIG. 1 can be any number of different types of communication links. For example, each of the communication links 18, 19 could be implemented as a small computer systems interface (SCSI) bus or in the alternative communication between the computers 12, 13 and the storage systems can be performed over a Fibre Channel fabric, utilizing various communication protocols such as Fibre Channel, or iSCSI or internet protocol (IP), that takes advantage of the communication buses.
Each storage system 20, 21 typically includes a plurality of storage devices on which data is stored. In the system shown in FIG. 1, each storage system includes a plurality of disk drives 28a-n, 29 a-n and a plurality of disk controllers or back end adapters 26a-n, 27a-n that control access to the disk drives 28a-n, 29a-n. Each storage system 20, 21 further includes a plurality of storage bus directors or computer or front end adapters 22a-n, 23a-n that control communication with the computers 12, 13 over the communication links 18, 19. Each storage system 20, 21 further includes a cache 24, 25 to improve the performance of the storage system. In particular, when the computer 12 executes a read operation from the storage system 20, the storage system 20 may service the read from the cache 24 (when the data is stored in cache), rather than one of the disk drives 28a-n to execute the read more efficiently. Similarly when the computer 12 executes a write command to the storage system 20, the corresponding storage bus director 22 can execute the write to the cache 24. Thereafter, the write can be destaged, in a manner transparent to the computer, to one of the appropriate disk drives 28a-n. Finally each storage system includes an internal bus 31, 33 over which the storage bus directors 22, 23 disk controllers 26,27 and the cache 24,25 can communicate.
Still referring to the system of FIG. 1, the system 10 further includes connections between each of the computers 12 and 13. This connection is shown with an Internet connection 32 being the communication link between the computers 12 and 13. Each computer 12,13 also is connected to an Ethernet network 38, 39 which in turn is each connected to a router 34, 35 which serves as to connect each computer 12, 13 to the internet. Each Ethernet network 38, 39 also serves to connect or couple computers 12, 13 to one or more workstations 36a-n, 37a-n which are available to be used by a plurality of users of the computers 12, 13. It should be understood that the communication link shown in FIG. 1 as the Internet connection 32 could also be any type of wide area network (WAN) as is well known in the art.
It should also be appreciated that the present invention is not limited to situations where the computers are directly connected to the storage systems. One or more computers may be connected to one or more storage systems using a network with requests and responses being forwarded to the storage systems according to the protocol of the network. One exemplary network in which the present invention may be employed is a Fibre Channel network, although the present invention is not limited to use of a Fibre Channel network or any other particular network configuration.
FIG. 2 illustrates a network 51 arranged in a fabric configuration where communication between the various components are coupled together by a switch 50. Communication, except for the link 30, is controlled by the switch 50. The present invention also contemplates networks arranged in other configuration such as a loop configuration (not shown) or alternatively in a hybrid arrangement wherein one storage system is connected to a fabric while a second storage system is connected in a loop configuration.
Turning back to FIG. 1, he storage systems 20, 21 also are connected with a high speed communication link 30, which will be described. The data stored on data storage system 20 may be crucial to the operation of the computer 12. Therefore, a contingency solution is desirable in the event the a problem is experienced with storage system 20 to ensure that the data is not lost and to minimize the risk the risk of computer 12 being down or unavailable due to issues with the storage system 20. Potential problems with the storage system 20 can include hardware and/or software errors that may make stored data unrecoverable, as well as catastrophic events such as an earthquake, power shortage or other natural disaster that could result in the destruction or unavailability of the storage system. One solution for protecting the data stored in storage system 12 is to mirror the data into another storage system, such as storage system 13, as will be described.
However, with the advent of clustering programs or applications such as Microsoft Cluster Server or Veritas Cluster Server, that operate on the computers 12, 13, it is becoming critical to ensure that the data which is essential to the operation of these type of applications continues to be available to the applications on the computers even when the normal mode of communication between the applications is down or not available.
It would be advantageous therefore, to have a method and device to ensure that even if the normal mode of communication is not available, an alternate communication mode could be made available to make certain that applications can continue to send and receive data critical to the operation of the computer systems.